ALB, EC2, SSL https 설정

마지막 수정일: 2025. 01. 17.

첫 포스팅 일자 : 2025.01.17
버전에 따라 안 될 수도 있으니 항상 주의하자 웬만하면 최신 업데이트된 포스팅을 읽읍시다

정말 매번 하지만 할 때마다 기억이 안 나서 한 번 정리해야겠다고 생각함
https 보안그룹 설정을 위해서 SSL 등록을 해야하는데 요즘 framework에서는 배포할 때 자동으로 등록해주는 곳도 많음(ex. vercel)
하지만 기본적으로 서버에 올릴 때는 등록해야하니까 AWS 기준으로 설명
현 메모는 EC2와 ALB 기준 + route53에서 이미 도메인이 등록된 상황에서 기술함
하지만 상황에 따라 EC2가 아닌 다른 service(ecs 등등)를 쓸 수도 있지만 전체적인 프로세스 자체는 유사하므로 참고하자
주의사항 : EC2 사용 시 무조건 로드밸런싱(ALB)를 써아먄 SSL 등록이 가능함
주의사항2 : 만약 도메인이 등록되어 있지 않다면 일단 도메인 등록부터 원하는 곳(가비아, route 53 등)에서 합시다

1. SSL 요청

일단 SSL을 만들어야 됨
AWS에서는 AWS Certificate Manager > 인증서 요청에 들어가면 있음
만드는 것은 상당히 단순
도메인 이름을 등록해야 하는데 기본 도메인(example.com)과 서브 도메인(*.example.com)들을 등록하면 됨
검증 방식과 키 알고리즘은 기본으로 두자(DNS 검증, RSA 2048)

다 만들고 인증서 나열에 들어가면 만들어진 인증서가 있고 이를 route53에 등록하면됨


이미 만들어진 경우 위 탭에서 route 53에서 레코드 생성 누르면 자동으로 해결

2. 대상 그룹 설정 (3번 먼저 해도 됨)

EC2 > 대상그룹 설정 tab으로 들어가면 됨
대상 그룹 설정에서 크게 설정해야 하는 것은 5개

  1. 대상 유형(ip, instance, lambda, alb 등등)
  2. 프로토콜 : 포트
  3. VPC
  4. 상태검사
  5. 인스턴스 포트 (인스턴스인 경우 다른 애들은 명칭이 다름)

대상 유형

대상 유형은 ec2 이므로 instance 상황에 맞게 택하자, 물론 ip로도 가능은 함

프로토콜 : 포트

2번의 프로토콜 포트는 처음 대상그룹에서 들어오는 포트를 의미함 보통 http 80포트나 https 443 포트

VPC

ALB, EC2 있는 VPC 선택
아니어도 되지만 특이 케이스니까 제외

상태검사

대상 그룹이 유효한지 확인하기 위해서 상태검사가 진행됨(healthy, unhealthy)
나중에 unhealthy를 보면 빡치는 자신을 볼 수 있음...
기본으로는 인스턴스 포트로 지정된 곳에서 /에 요청을 보내지만 나는 /api를 기본으로 설정했다! 하면 거기로 보내면 됨

인스턴스 포트

실제 인스턴스 여기서는 ec2에서 내 서버 포트를 의미함(web이면 3000 등)

3. ALB 설정(여기서 SSL 등록)

ALB 설정만 해도 사실 좀 길다 보니 이건 따로 포스팅을 하도록 하고


여기서 보안 리스너에서 SSL 인증서를 등록하면 된다
또한 2번에서 만든 대상그룹을 ALB에 등록하면 끝